<template>
	<view class="goods-details">
		<view class="top-nav-box" :style="{height:navHeight, paddingTop:statusBarHeight}">
			<image v-if="share==1||pageNum<=1" class="top-nav-back" src="../../static/images/icon_float_home.png"
				@click="goHome"></image>
			<image v-else class="top-nav-back" src="../../static/images/icon_user_back.png" @click="getback"></image>
		</view>
		<view class="contain" v-if="!isNull" id="goods" @touchstart="isTouchStart = true">
			<product-swiper :imgUrls="swiperList"></product-swiper>
			<view class="goods-price">
				<view style="display: flex;align-items: center;">
					<view class="price-box">
						<price-format :first-size="45" :second-size="45" :subscript-size="26"
							:price="goodsDetail.min_price" :weight="700"></price-format>
						<view style="font-size: 22rpx;text-decoration: line-through;">原价 ￥{{goodsDetail.market_price}}
						</view>
					</view>
					<tips-icon type="presale" class="mr10" v-if="goodsDetail.is_presale==1"></tips-icon>
					<tips-icon type="package" class="mr10"
						v-if="goodsDetail.delivery_type&&goodsDetail.delivery_type.indexOf('4')>-1"></tips-icon>
					<tips-icon type="combination" class="mr10" v-if="goodsDetail.is_container==1"></tips-icon>
				</view>
				<image class="icon-share" src="/static/images/icon_share_detail.png" @tap="showShareBtn = true"></image>
			</view>
			<view class="goods-info bg-white">
				<view class="goods-info-detail">
					<view class="name lg bold">{{ goodsDetail.name }}</view>
					<view class="goods-detail">
						<view v-for="(item,index) in goodsDetail.goods_spec" :key="index">
							<view class="label">{{item.name}}</view>: {{ item.spec_value[0].value }}
						</view>
					</view>
				</view>
			</view>
			<view class="spec flex bg-white m-t-20" v-if="goodsDetail.is_presale==1">
				<view class="text">发货时间</view>
				<view class="line-1">{{goodsDetail.presale_time}}之前</view>
			</view>
			<view class="package-list m-t-20 bg-white" v-if="goodsDetail.is_container==1">
				<view class="package-title">组合包商品列表</view>
				<view class="package-item" v-for="(item,index) in goodsDetail.container_goods_detail" :key="index"
					@click="item.shop_goods_id && goUrl('/pages/goods_details/goods_details',{id: item.shop_goods_id})">
					<u-image width="127rpx" height="170rpx" class="package-goods-image" :src="item.image"
						style="margin-right: 20rpx;"></u-image>
					<view class="package-book">
						<view style="font-size: 28rpx;font-weight: 700;">{{item.name}}</view>
						<view style="font-size: 28rpx;color: #919191;">
							x{{goodsDetail.container_item_info[item.goods_item[0].id]}}</view>
						<view class="primary">
							<text style="font-size: 22rpx;color: #919191;">单品价：</text>
							<price-format :first-size="28" :second-size="28" :subscript-size="18" :weight="700"
								:price="item.min_price"></price-format>
						</view>
					</view>
					<u-icon name="arrow-right" v-if="item.shop_goods_id"></u-icon>
				</view>
			</view>
			<view class="details m-t-20 bg-white" id="details" v-else>
				<view class="title">商品详情</view>
				<view class="content">
					<u-parse :html="goodsDetail.content" :lazy-load="true" :show-with-animation="true"
						style="margin-bottom: 10rpx;"></u-parse>
					<image mode="widthFix" :src="item.uri" v-for="(item,index) in goodsDetail.goods_image" :key="index">
					</image>
				</view>
			</view>
			<view class="footer flex bg-white fixed">
				<view style="display: flex;">
					<view v-if="goodsDetail.delivery_type&&goodsDetail.delivery_type.indexOf('4')==-1"
						class="flex-col btn cart col-center row-center" @click="menuJump('/pages/shop_cart/shop_cart')">
						<image class="icon-md" src="/static/images/icon_home_cart_black.png"></image>
						<text class="xxs lighter">购物车</text>
						<u-badge v-if="cartNum" :bgColor="colorConfig.primary" :offset="[8, 10]" :count="cartNum">
						</u-badge>
					</view>
					<view class="btn flex-col col-center row-center" @click="showPhonePop=true">
						<image class="icon-md" src="/static/images/icon_contact_goods.png"></image>
						<text class="xxs lighter">客服</text>
					</view>
				</view>
				<view style="display: flex;"
					v-if="goodsDetail.delivery_type&&goodsDetail.delivery_type.indexOf('4')>-1">
					<view class="consult-btn" @tap="showSpecFun(2,4)">配送到校</view>
				</view>
				<view style="display: flex;" v-else>
					<view class="add-cart" v-if="goodsDetail.delivery_type&&goodsDetail.delivery_type.indexOf('3')>-1"
						@tap="showSpecFun(1,3)">到店自提</view>
					<view class="right-buy" v-if="goodsDetail.delivery_type&&goodsDetail.delivery_type.indexOf('1')>-1"
						@tap="showSpecFun(1,1)">快递发货</view>
				</view>
			</view>
		</view>
		<view v-else>
			<view class="details-null flex-col col-center">
				<image class="img-null" src="/static/images/goods_null.png"></image>
				<view class="xs muted">该商品已下架或不存在，去逛逛别的吧~</view>
			</view>
		</view>
		<!-- 规格 -->
		<spec-popup :show="showSpec" :is-seckill="goodsType == 1" :goods="goodsDetail" @close="showSpec = false"
			:show-add="popupType == 1 || popupType == 0"
			:show-buy="(popupType == 1&&delivery_type==1) || popupType == 0"
			:show-stock="goodsDetail.is_show_stock == 1" :show-confirm="popupType == 3" @buynow="onBuy"
			:type="goodsDetail.type" :group="!!isGroup" @addcart="onAddCart" @change="onChangeGoods"
			:red-btn-text="btnText.red" :yellow-btn-text="btnText.yellow" @confirm="onConfirm"></spec-popup>

		<!-- 分享海报 -->
		<share-popup v-model="showShareBtn" :share-id="id" pagePath="pages/goods_details/goods_details" type="1"
			:config="{
        avatar: userInfo.avatar,
        nickname: userInfo.nickname,
        image: goodsDetail.poster || goodsDetail.image,
        price: goodsDetail.min_price,
        marketPrice: goodsDetail.market_price,
        name: team.share_title || goodsDetail.name,
      }" />

		<share-popup :show="showShareBtn" @close="showShareBtn = false" :goods-id="id" :img-url="goodsDetail.image"
			:summary="goodsDetail.remark" :share-title="goodsDetail.name"></share-popup>
		<loading-view v-if="isFirstLoading"></loading-view>

		<u-modal v-model="showDelivery" title="请选择配送方式" :showConfirmButton="false" :maskCloseAble="true" width="616"
			:z-index="9999">
			<view class="delivery-box">
				<view class="delivery-item" :class="{'active':item.id==delivery_type}"
					v-for="(item,index) in delivery_types_arr" :key="index" @click="delivery_type=item.id">
					<image :src="item.pic"></image>
					<view style="flex: 1;display: flex;flex-direction: column;justify-content: space-between;">
						<view style="font-size: 32rpx;font-weight: 700;">{{item.name}}</view>
						<view style="font-size: 24rpx;color: #919191;">{{item.des}}</view>
					</view>
				</view>
				<view style="margin-top: 40rpx;text-align: center;">
					<view class="delivery-btn" @click="changeDeliveryType">确认</view>
				</view>
			</view>
		</u-modal>
		<u-popup v-model="showPhonePop" mode="bottom" border-radius="14" :closeable="true" @close="onClose"
			:safe-area-inset-bottom="true">
			<view style="padding: 80rpx 0 40rpx 0;text-align: center;">
				<view style="font-size: 28rpx;font-weight: 700;">拨打客服电话</view>
				<view style="margin-top: 40rpx;font-size: 28rpx;color: #919191;"><text
						@click="handleConsult">{{shopMobile}}</text></view>
				<view class="pop-btn bg-primary" @click="handleConsult">拨打</view>
			</view>
		</u-popup>
	</view>
</template>
team_min_price
<script>
	import {
		exchangeToGoodsId,
		getGoodsDetail,
		addCart,
	} from "@/api/store";
	import {
		collectGoods
	} from "@/api/user";
	import {
		getCouponList,
		teamCheck
	} from "@/api/activity";
	import {
		mapActions,
		mapGetters
	} from "vuex";
	import {
		toLogin
	} from "@/utils/login";
	import Cache from "@/utils/cache";
	import {
		SHOP_INFO,
		SHOP_CODE
	} from "@/config/cachekey";
	import {
		strToParams,
		arraySlice,
		getRect,
		getcu
	} from "@/utils/tools";
	const app = getApp();
	export default {
		data() {
			return {
				active: 0,
				isTouchStart: false,
				topArr: [],
				isFirstLoading: true,
				isNull: false,
				isGroup: 0,
				showSpec: false,
				showCoupon: false,
				showShareBtn: false,
				showCommission: true,
				popupType: "",
				swiperList: [],
				goodsDetail: {},
				goodsType: 0,
				checkedGoods: {},
				comment: {},
				countTime: 0,
				team: {},
				teamFound: [],
				navStyle: {
					backBg: 0.4,
					backgroundBg: 0,
					backColor: "rgba(256,256,256,1)",
				},
				id: "",
				main_goods_id: "",
				share: 0,
				pageNum: 1,
				shop: {},
				// 分销
				distribution: {},
				showDelivery: false,
				delivery_type: '1',
				delivery_types_arr: [{
					id: '1',
					name: '快递发货',
					des: '由所购图书书店将图书通过快递发往您填写的地址',
					pic: '../../static/images/icon_delivery.png'
				}, {
					id: '3',
					name: '到店自取',
					des: '由您本人亲自来选定书店凭购书码取货',
					pic: '../../static/images/icon_pickup.png'
				}],
				goPayParams: null,
				showPhonePop: false,
				shopMobile: ""
			};
		},
		onLoad() {
			const options = this.$Route.query;
			if (options && options.scene) {
				const scene = strToParams(decodeURIComponent(options.scene));
				options.id = scene.id;
			}
			this.id = options.id;
			this.share = options.share;
			this.pageNum = getCurrentPages().length;
			if (this.share) {
				this.main_goods_id = options.main_goods_id;
				this.exchangeToGoodsIdFun();
			} else {
				this.getGoodsDetailFun();
				this.getCartNum();
				this.getHomeFun();
			}
			uni.$on("refreshhome", () => {
				if (this.share) {
					this.main_goods_id = options.main_goods_id;
					this.exchangeToGoodsIdFun();
				} else {
					this.getGoodsDetailFun();
					this.getCartNum();
					this.getHomeFun();
				}
			});
		},
		onShow() {},
		onPageScroll(e) {
			const top = uni.upx2px(500);
			const {
				scrollTop
			} = e;
			const percent = scrollTop / top;
			this.navStyle.backgroundBg = percent;
			this.navStyle.backBg = 0.4 * (0.5 - percent);
			this.navStyle.backColor =
				percent < 0.5 ?
				"rgba(256,256,256," + (0.5 - percent) * 2 + ")" :
				"rgba(0,0,0," + (percent - 0.5) * 2 + ")";
			if (!this.isTouchStart) return;
			const topList = this.topArr
				.map((item, index) => ({
					index,
					top: item,
				}))
				.filter((item) => item.top <= scrollTop);

			if (topList.length) {
				const index = topList.sort((a, b) => b.top - a.top)[0].index;
				if (this.active == index) return;
				this.active = index;
			}
		},
		methods: {
			...mapActions(["getCartNum", "getShop", "wxShare"]),
			changeActive(index) {
				this.isTouchStart = false;

				uni.pageScrollTo({
					scrollTop: this.topArr[index],
					duration: 200,
				});
			},
			getRectInfo() {
				if (this.topArr.length) return;
				getRect("#goods").then((res) => {
					this.topArr[0] = res.top - this.navHeight;
				});
				getRect("#evaluation").then((res) => {
					this.topArr[1] = res.top - this.navHeight;
				});
				getRect("#details").then((res) => {
					this.topArr[2] = res.top - this.navHeight;
				});
			},
			async exchangeToGoodsIdFun() {
				if (Cache.get(SHOP_CODE)) {
					const {
						data,
						code,
						msg
					} = await exchangeToGoodsId({
						main_goods_id: this.main_goods_id,
						shop_id: Cache.get(SHOP_CODE)
					});
					if (code == 1) {
						const {
							goods_id
						} = data;
						this.id = goods_id;
						this.getGoodsDetailFun();
						this.getCartNum();
						this.getHomeFun();
					} else {
						this.$toast({
							title: msg
						});
					}
				}
			},
			async getGoodsDetailFun() {
				const {
					data,
					code
				} = await getGoodsDetail({
					goods_id: this.id,
				});
				console.log("detail", data);
				if (code == 1) {
					const {
						image,
						goods_detail_image,
						goods_image,
						main_goods_id,
						content,
						comment,
						like,
						activity,
						shop,
						distribution,
					} = data;
					let {
						info,
						type,
						team,
						found,
						end_time
					} = activity; //秒杀时间
					let goods_first_image = [{
						'uri': image
					}];
					console.log(activity);
					//拼团的结束时间-现在的时间 = 剩余的时间
					let time = end_time ?
						end_time - Date.now() / 1000 :
						info ?
						info.activity_end_time - Date.now() / 1000 :
						0;

					if (found) {
						found = arraySlice(found, [], 2);
					}
					this.main_goods_id = main_goods_id;
					this.distribution = distribution || {};
					this.shop = shop;
					this.goodsDetail = data;
					this.swiperList = goods_detail_image.length > 0 ? goods_detail_image : goods_first_image;
					this.comment = comment || {};
					this.countTime = time;
					this.goodsType = type;
					this.team = info ? info : {};
					this.teamFound = found ? found : [];

					this.$nextTick(() => {
						// 滚动到顶部，防止h5端出现问题
						uni.pageScrollTo({
							scrollTop: 0,
							duration: 0,
						});
						this.isFirstLoading = false;
						this.getRectInfo();
					});
					// #ifdef H5
					const options = {
						shareTitle: this.team.share_title || data.name,
						shareImage: data.image,
						shareDesc: this.team.share_intro || data.remark,
					};
					this.wxShare(options);
					// #endif
				} else {
					this.isNull = true;
					this.isFirstLoading = false;
				}
			},

			async collectGoodsFun() {
				if (!this.isLogin) return this.$Router.push("/pages/login/login");
				const {
					goodsDetail: {
						is_collect
					},
				} = this;
				const {
					msg,
					code
				} = await collectGoods({
					goods_id: this.id,
				});
				if (code == 1) {
					{
						this.$toast({
							title: msg
						});
					}
					this.getGoodsDetailFun();
				}
			},
			showCouponFun() {
				if (!this.isLogin) return toLogin();
				this.showCoupon = true;
			},
			onChangeGoods(e) {
				this.checkedGoods = e.detail;
			},
			showSpecFun(type, deliveryType) {
				if (this.goodsType == 2 && [2, 3].includes(type)) {
					this.isGroup = 1;
				} else {
					this.isGroup = 0;
				}
				this.popupType = type;
				this.delivery_type = deliveryType;
				this.showSpec = true;
			},
			onBuy(e) {
				if (!this.isLogin) return this.$Router.push("/pages/login/login");
				const {
					id,
					goodsNum
				} = e.detail;
				this.goPayParams = {
					goods: [{
						item_id: id,
						num: goodsNum,
						goods_id: this.id,
						shop_id: this.shop.id,
						delivery_type: this.delivery_type,
					}],
					type: "buy",
					goodsType: this.goodsDetail.type,
				};
				this.showSpec = false;
				this.goodsType == 2 ? (this.goPayParams.teamId = this.team.id) : "";
				this.foundId ? (this.goPayParams.foundId = this.foundId) : "";

				if (this.goodsDetail.delivery_type.indexOf('4') > -1) {
					this.delivery_type = '4';
					this.changeDeliveryType()
				} else {
					this.changeDeliveryType()
					this.showSpec = false;
				}
			},

			onConfirm(e) {
				const {
					team: {
						team_id
					},
				} = this;

				teamCheck({
					team_id: this.foundId,
					// found_id: this.foundId,
					goods_id: e.detail.goods_id,
					item_id: e.detail.id,
					count: e.detail.goodsNum,
				}).then((res) => {
					if (res.code == 1) {
						this.showDelivery = false;
						this.showSpec = true;
					}
				});
			},

			async onAddCart(e) {
				if (!this.isLogin) return this.$Router.push("/pages/login/login");

				if (this.goodsType == 2) {
					// 拼团单独购买
					const params = {
						goods: [{
							item_id: e.detail.id,
							num: e.detail.goodsNum,
							delivery_type: this.delivery_type,
							goods_id: this.id,
							shop_id: this.shop.id,
						}, ],
						type: "buy",
						goodsType: this.goodsDetail.type,
					};
					this.$Router.push({
						path: "/pages/confirm_order/confirm_order",
						query: {
							data: params,
						},
					});
					return;
				}

				const {
					id,
					goodsNum
				} = e.detail;
				const {
					code,
					data,
					msg
				} = await addCart({
					item_id: id,
					delivery_type: this.delivery_type,
					goods_num: goodsNum,
				});
				if (code == 1) {
					this.getCartNum();
					this.$toast({
						title: msg,
						icon: "success",
					});
					this.showSpec = false;
					// this.goUrl('/pages/shop_cart/shop_cart',{
					// 	item_id: id,
					// 	delivery_type: this.delivery_type
					// })
				}
			},
			handleConsult() {
				uni.makePhoneCall({
					phoneNumber: this.shopMobile.toString(), //仅为示例
				});
			},
			changeDeliveryType() {
				this.goPayParams.goods[0].delivery_type = this.delivery_type;
				this.$Router.push({
					path: "/pages/confirm_order/confirm_order",
					query: {
						data: this.goPayParams,
					},
				});
			},
			async getHomeFun() {
				if (this.shopInfo.current_shop || Cache.get(SHOP_INFO).current_shop) {
					this.shopMobile = this.shopInfo.current_shop ? this.shopInfo.current_shop.mobile : Cache
						.get(SHOP_INFO).current_shop.mobile;
				} else {
					await this.getShop();
					this.shopMobile = this.shopInfo.current_shop.mobile;
				}
			},
			goUrl(url, query) {
				let routerObj = {
					path: url
				}
				if (query) {
					routerObj = Object.assign(routerObj, {
						query: query
					})
				}
				this.$Router.push(routerObj)
			},
			getback() {
				if (this.share) {
					uni.switchTab({
						url: "/pages/index/index"
					});
				} else {
					//#ifdef H5
					this.$router.go(-1); //返回上一层
					//#endif

					//#ifdef MP-WEIXIN
					uni.navigateBack({
						delta: 1
					});
					//#endif	
				}
			},
			goHome() {
				uni.switchTab({
					url: "/pages/index/index"
				});
			},
			menuJump(url) {
				uni.switchTab({
					url: url
				});
			}
		},
		async onShareAppMessage() {
			const {
				goodsDetail,
				inviteCode,
				team
			} = this;
			return {
				title: team.share_title || goodsDetail.name,
				imageUrl: goodsDetail.image,
				path: "/pages/goods_details/goods_details?main_goods_id=" +
					this.main_goods_id +
					"&invite_code=" +
					inviteCode + "&share=1",
			};
		},
		computed: {
			...mapGetters([
				"cartNum",
				"inviteCode",
				"sysInfo",
				"appConfig",
				"userInfo",
				"shopInfo"
			]),
			btnText() {
				const {
					goodsType
				} = this;
				switch (goodsType) {
					case 1:
						return {
							red: "立即抢购",
								yellow: "",
						};
					case 2:
						return {
							red: "立即开团",
								yellow: "单独购买",
						};
					default:
						return {
							red: "立即购买",
								yellow: "加入购物车",
						};
				}
			},
			getTeamCountTime() {
				return (time) => time - Date.now() / 1000;
			},
			statusBarHeight() {
				return this.sysInfo.statusBarHeight + 'px'
			},
			navHeight() {
				return this.sysInfo.navHeight + 'px'
			},
			enableCommission() {
				const {
					goodsType,
					distribution: {
						earnings,
						is_show
					},
				} = this;
				return goodsType == 0 && earnings > 0 && is_show == 1;
			},
		},
	};
</script>

<style lang="scss" scoped>
	@import "@/styles/base.scss";

	.goods-price {
		display: flex;
		width: 100%;
		height: 112rpx;
		padding: 0 30rpx;
		background: linear-gradient(to right, #f56e54, #ec3c32);
		justify-content: space-between;
		align-items: center;

		.price-box {
			margin-right: 30rpx;
			color: #fff;
		}

		.icon-share {
			width: 58rpx;
			height: 58rpx;
		}
	}

	.goods-details {
		padding-bottom: calc(120rpx + env(safe-area-inset-bottom));

		.top-nav-box {
			position: fixed;
			display: flex;
			align-items: center;
			justify-content: space-between;
			width: 100%;
			padding-left: 32rpx;
			padding-right: 200rpx;
			top: 0;
			z-index: 1;

			.top-nav-back {
				width: 58rpx;
				height: 58rpx;
			}
		}

		// .seckill {
		// 	height: 100rpx;
		// 	background: #ffd4d8;

		// 	.price {
		// 		width: 504rpx;
		// 		height: 100%;
		// 		background: url(../../static/images/bg_seckill.png) no-repeat;
		// 		background-size: 100%;
		// 	}

		// 	.down {
		// 		flex: 1;
		// 	}
		// }

		.group {
			height: 100rpx;
			width: 100%;
			background-image: url(../../static/images/pintuan_bg.png);
			background-size: 100%;

			.group-num {
				border: 1px solid #ffffff;
				border-radius: 4rpx;

				.group-icon {
					background: #fff;
					padding: 3rpx 7rpx;
				}
			}

			.down {
				height: 100%;
				background-color: #fff5e1;
				padding: 0 20rpx;
			}
		}

		.goods-info {
			position: relative;
			display: flex;
			padding: 30rpx 30rpx 20rpx;
			align-items: center;

			.goods-info-detail {
				display: flex;
				flex: 1;
				flex-direction: column;
				justify-content: space-between;

				.name {
					margin-bottom: 30rpx;
					font-size: 36rpx;
				}

				.goods-detail {
					padding: 10rpx;
					background-color: #f5f5f5;
					font-size: 25rpx;
					color: #919191;

					.label {
						display: inline-block;
						width: 80rpx;
						text-align-last: justify;
					}
				}

				.price {
					margin-top: 20rpx;
					align-items: baseline;
				}
			}
		}

		.details-null {
			padding-top: 140rpx;
			margin-bottom: 100rpx;
		}

		.spec {
			padding: 24rpx 40rpx;

			.text {
				width: 126rpx;
				font-size: 25rpx;
				font-weight: 700;
			}
		}

		.details {
			padding: 24rpx 40rpx;

			.title {
				margin-bottom: 20rpx;
				font-size: 25rpx;
				font-weight: 700;
			}

			&>.content {

				::v-deep image {
					width: 100%;
					vertical-align: middle;
				}

				// #ifdef H5
				::v-deep img {
					width: 100%;
					vertical-align: middle;
				}

				// #endif
				// #ifdef MP-WEIXIN || APP-PLUS
				::v-deep ._img {
					width: 100%;
					display: block;
				}

				// #endif
			}
		}

		.package-list {
			padding: 30rpx 40rpx;

			.package-title {
				font-size: 25rpx;
				font-weight: 700;
			}

			.package-item {
				display: flex;
				margin-top: 20rpx;
				padding: 20rpx;
				border: solid 1rpx #e5e5e5;
				border-radius: 10rpx;

				.package-book {
					flex: 1;
					display: flex;
					flex-direction: column;
					justify-content: space-between;
				}
			}
		}

		.footer {
			position: fixed;
			display: flex;
			height: 150rpx;
			bottom: 0;
			left: 0;
			right: 0;
			padding: 10rpx 40rpx 24px;
			box-shadow: 0px 0px 12px rgba(0, 0, 0, 0.1);
			flex-direction: row;
			justify-content: space-between;

			.btn {
				width: 100rpx;
				height: 100rpx;
				position: relative;
				line-height: 1.3;
			}

			.cart-num {
				position: absolute;
				left: 60rpx;
				top: 6rpx;
			}

			.add-cart,
			.right-buy,
			.consult-btn {
				text-align: center;
				height: 60rpx;
				padding: 0 30rpx;
				line-height: 60rpx;
				font-size: 25rpx;
			}

			.add-cart {
				background-color: #fff;
				border: solid 4rpx #fa7b63;
				border-radius: 16rpx 0 0 16rpx;
				color: #fa7b63;
			}

			.right-buy {
				background-color: #fa7b63;
				border: solid 4rpx #fa7b63;
				border-radius: 0 16rpx 16rpx 0;
				color: #fff;
			}

			.consult-btn {
				background-color: #fcae08;
				border-radius: 16rpx;
				color: #fff;
			}
		}

		.group-play {
			.title {
				padding: 20rpx 28rpx;
				border-bottom: $-solid-border;
			}

			.steps {
				padding: 20rpx 28rpx;

				.step {
					flex: none;
				}

				.line {
					flex: 1;
					border: 1px dashed #999999;
					margin: 0 20rpx;
				}

				.number {
					border: 1rpx solid #707070;
					width: 28rpx;
					height: 28rpx;
					border-radius: 50%;
					line-height: 28rpx;
					text-align: center;
					margin-right: 6rpx;
				}
			}
		}

		.group-list {
			.group-item {
				padding: 20rpx 24rpx;

				&:not(:last-of-type) {
					border-bottom: $-solid-border;
				}

				.group-btn {
					background: linear-gradient(90deg, #f95f2f 0%, #ff2c3c 100%);
					height: 58rpx;
					padding-left: 28rpx;
					padding-right: 28rpx;
					margin-left: 30rpx;
					box-shadow: 0px 6rpx 12rpx rgba(249, 47, 138, 0.4);
				}
			}
		}

		.delivery-box {
			padding: 40rpx;
			background-color: #fff;

			.delivery-item {
				display: flex;
				margin-top: 20rpx;
				padding: 30rpx;
				background-color: #f6f6f6;
				border: solid 6rpx #f6f6f6;
				border-radius: 16rpx;

				&.active {
					border: solid 6rpx #fa7b63;
				}

				image {
					width: 135rpx;
					height: 125rpx;
					margin-right: 30rpx;
					object-fit: contain;
				}
			}

			.delivery-btn {
				display: inline-block;
				width: 378rpx;
				height: 75rpx;
				background-color: $-color-primary;
				border-radius: 16rpx;
				font-size: 32rpx;
				font-weight: 700;
				line-height: 75rpx;
				color: #fff;
				letter-spacing: 10rpx;
			}
		}
	}

	.pop-btn {
		display: inline-block;
		width: 448rpx;
		height: 75rpx;
		margin-top: 100rpx;
		border-radius: 10rpx;
		font-size: 29rpx;
		color: #fff;
		line-height: 75rpx;
		text-align: center;
	}
</style>